[PR]

水無瀬の部屋 > Programming > sample > tools > header > _tools.h
最終更新日: 2007/03/30

   1: //*********************************************************
   2: // プロジェクト: TOOLS
   3: //  ファイル名: _tools.h
   4: //
   5: /* << 使用方法 >>
   6: 
   7: 	//*********************************************************
   8: 	// コンパイル環境 の 指定
   9: 	//*********************************************************
  10: 	#ifndef PRIVATE_TOOLS_HEAD_INCLUDED // 冗長ガード
  11: 	#include <header/_tools.h>
  12: 	#ifndef PRIVATE_TOOLS_HEAD_INCLUDED // ガード名の検査
  13: 	#error "? PRIVATE_TOOLS_HEAD_INCLUDED"
  14: 	#endif // #ifndef PRIVATE_TOOLS_HEAD_INCLUDED
  15: 	#endif // #ifndef PRIVATE_TOOLS_HEAD_INCLUDED
  16: 
  17: */
  18: //*********************************************************
  19: #ifndef PRIVATE_TOOLS_HEAD_INCLUDED // 多重インクルードの防止
  20: #define PRIVATE_TOOLS_HEAD_INCLUDED
  21: 
  22: 
  23: //*********************************************************
  24: // コンパイル環境 の 指定
  25: //*********************************************************
  26: // コンパイラオプションの設定
  27: #pragma warning( push, 4 ) // 警告レベルを最大にする
  28: 
  29: 
  30: // リンカオプションの設定
  31: #ifdef _MSC_VER
  32: #if (1200 <= _MSC_VER) &&(_MSC_VER < 1300)
  33: #pragma comment(linker, "/WARN:3")          // 警告レベルを最大にする
  34: //#pragma comment(linker, "/SAFESEH")         // 安全な例外ハンドラがあるイメージを作る
  35: #pragma comment(linker, "/MAPINFO:EXPORTS") // マップファイルにエクスポートされた関数を含める
  36: #pragma comment(linker, "/MAPINFO:LINES")   // マップファイルに行番号情報を含める
  37: #pragma comment(linker, "/MAPINFO:FIXUPS")  // マップファイルにベースリロケーション情報を含める
  38: #endif // #if _MSC_VER == 1200
  39: #endif // #ifdef _MSC_VER
  40: 
  41: 
  42: // ライブラリの指定
  43: #pragma comment( lib, "COMCTL32" )
  44: #pragma comment( lib, "VERSION" )
  45: #pragma comment( lib, "IMM32" )
  46: #pragma comment( lib, "RASAPI32" )
  47: #pragma comment( lib, "WINMM" )
  48: #pragma comment( lib, "LZ32" )
  49: #pragma comment( lib, "SETUPAPI" )
  50: 
  51: 
  52: // WINVER の定義 …… プレーンな Windows95 を対象とする
  53: #ifndef WINVER
  54: #define WINVER 0x0400
  55: #endif // #ifndef WINVER
  56: 
  57: 
  58: // _WIN32_IE の定義 …… プレーンな Windows95 を対象とする
  59: #ifndef _WIN32_IE
  60: #define _WIN32_IE 0x01ff
  61: #endif // #ifndef _WIN32_IE
  62: 
  63: 
  64: // _WIN32_WINDOWS の定義 …… 対象 ???
  65: #ifndef _WIN32_WINDOWS
  66: #define _WIN32_WINDOWS 0x03ff
  67: #endif // #ifndef _WIN32_WINDOWS
  68: 
  69: 
  70: // _WIN32_WINNT の定義 …… 対象 ???
  71: #ifndef _WIN32_WINNT
  72: #define _WIN32_WINNT 0x03ff
  73: #endif // #ifndef _WIN32_WINNT
  74: 
  75: 
  76: // STRICT の定義 …… 厳密な型一致規則を採用
  77: #ifndef STRICT
  78: #define STRICT
  79: #endif // #ifndef STRICT
  80: 
  81: 
  82: // _CRT_SECURE_NO_DEPRECATE の定義 …… MSVC 固有の SECURE CRT を強制しない
  83: #ifndef _CRT_SECURE_NO_DEPRECATE
  84: #define _CRT_SECURE_NO_DEPRECATE
  85: #endif // #ifndef STRICT
  86: 
  87: 
  88: //*********************************************************
  89: // マクロ の 定義
  90: //*********************************************************
  91: // 
  92: #define null          NULL
  93: 
  94: 
  95: //
  96: #define until( exp )   while( !(exp) )
  97: #define unless( exp )  if ( !(exp) )
  98: 
  99: 
 100: // 型 type が 有符号型 であれば 真 を返す
 101: #define is_signed(type)   ( ((type)-1) < 0 )
 102: 
 103: 
 104: // 型 type が 無符号型 であれば 真 を返す
 105: #define is_unsigned(type)  ( 0 < ((type)-1) )
 106: 
 107: 
 108: // 配列の要素数
 109: #define numof(array)  ( sizeof(array) / sizeof(array[0]) )
 110: 
 111: 
 112: // 64 bit 環境対応 のためのキャスト
 113: #define _w64_static_cast       static_cast
 114: #define _w64_reinterpret_cast  reinterpret_cast
 115: 
 116: 
 117: // 明示的な bool 型へのキャスト
 118: // 非 bool 値を明示的に bool 型へキャストした場合に出る警告 C4800 を抑制する
 119: // " C4800 : ブール値を 'true' または 'false' に強制的に設定します "
 120: // 暗黙的なキャストへの警告は抑制しない
 121: #define boolean_cast(exp)  ( !!(exp) )
 122: 
 123: 
 124: // メモ
 125: #define STRINGIZE(x)        #x
 126: #define STRINGIZEEX(macro)  STRINGIZE(macro)
 127: #define memo(msg)           message(__FILE__"("STRINGIZEEX(__LINE__)") : "msg)
 128: 
 129: 
 130: // COMPILE_ASSERT( exp ) の定義
 131: #ifdef _DEBUG // デバッグ版
 132: #define COMPILE_ASSERT( exp )  typedef char DUMMY_ARRAY_FOR_COMPILE_ASSERT[ ( exp ) ? 1 : -1 ] // デバッグ
 133: #else         // リリ−ス版
 134: #define COMPILE_ASSERT( exp )
 135: #endif // #ifndef _DEBUG
 136: 
 137: 
 138: //*********************************************************
 139: // C 標準ヘッダ の インクルード
 140: //*********************************************************
 141: //#include <tchar.h>
 142: #include <stddef.h>
 143: //#include <stdlib.h>
 144: #include <stdio.h>
 145: #include <string.h>
 146: 
 147: 
 148: //*********************************************************
 149: // WINDOWS 標準ヘッダ の インクルード
 150: //*********************************************************
 151: #include <windows.h>
 152: #include <windowsx.h>
 153: #include <shlobj.h>
 154: 
 155: 
 156: //*********************************************************
 157: // 危険関数 の 隠蔽
 158: //*********************************************************
 159: 
 160: // strcpy(), wcscpy(), _mbscpy(), _tcscpy()
 161: #ifndef USE_STRCPY
 162: #undef   _tcscpy
 163: #define  _tcscpy  _tcscpy_is_unsafe
 164: #undef   strcpy
 165: #define  strcpy   strcpy_is_unsafe
 166: #undef   wcscpy
 167: #define  wcscpy   wcscpy_is_unsafe
 168: #undef   _mbscpy
 169: #define  _mbscpy  _mbscpy_is_unsafe
 170: #else
 171: #pragma memo( "strcpy() を使用します。" )
 172: #endif // #ifndef USE_STRCPY
 173: 
 174: 
 175: // strncpy(), wcsncpy(), _mbsncpy(), _tcsncpy()
 176: #ifndef USE_STRNCPY
 177: #undef   _tcsncpy
 178: #define  _tcsncpy  _tcscpy_is_unsafe
 179: #undef   strncpy
 180: #define  strncpy   strncpy_is_unsafe
 181: #undef   wcsncpy
 182: #define  wcsncpy   wcsncpy_is_unsafe
 183: #undef   _mbsncpy
 184: #define  _mbsncpy  _mbsncpy_is_unsafe
 185: #else
 186: #pragma memo( "strncpy() を使用します。" )
 187: #endif // #ifndef USE_STRNCPY
 188: 
 189: 
 190: // strcat(), wcscat(), _mbscat(), _tcscat()
 191: #ifndef USE_STRCAT
 192: #undef   _tcscat
 193: #define  _tcscat  _tcscat_is_unsafe
 194: #undef   strcat
 195: #define  strcat   strcat_is_unsafe
 196: #undef   wcscat
 197: #define  wcscat   wcscat_is_unsafe
 198: #undef   _mbscat
 199: #define  _mbscat  _mbscat_is_unsafe
 200: #else
 201: #pragma memo( "strcat() を使用します。" )
 202: #endif // #ifndef USE_STRCAT
 203: 
 204: 
 205: // strncat(), wcsncat(), _mbsncat(), _tcsncat()
 206: #ifndef USE_STRNCAT
 207: #undef   _tcsncat
 208: #define  _tcsncat  _tcsncat_is_unsafe
 209: #undef   strncat
 210: #define  strncat   strncat_is_unsafe
 211: #undef   wcsncat
 212: #define  wcsncat   wcsncat_is_unsafe
 213: #undef   _mbsncat
 214: #define  _mbsncat  _mbsncat_is_unsafe
 215: #else
 216: #pragma memo( "strncat() を使用します。" )
 217: #endif // #ifndef USE_STRNCAT
 218: 
 219: 
 220: // strtok(), wcstok(), _mbstok(), _tcstok()
 221: #ifndef USE_STRTOK
 222: #undef   _tcstok
 223: #define  _tcstok  _tcstok_is_unsafe
 224: #undef   strtok
 225: #define  strtok   strtok_is_unsafe
 226: #undef   wcstok
 227: #define  wcstok   wcstok_is_unsafe
 228: #undef   _mbstok
 229: #define  _mbstok  _mbstok_is_unsafe
 230: #else
 231: #pragma memo( "strtok() を使用します。" )
 232: #endif // #ifndef USE_STRTOK
 233: 
 234: 
 235: // sprintf(), swprintf(), _stprintf()
 236: #ifndef USE_SPRINTF
 237: #undef   _stprintf
 238: #define  _stprintf  _stprintf_is_unsafe
 239: #undef   sprintf
 240: #define  sprintf    sprintf_is_unsafe
 241: #undef   swprintf
 242: #define  swprintf   swprintf_is_unsafe
 243: #else
 244: #pragma memo( "sprintf() を使用します。" )
 245: #endif // #ifndef USE_SPRINTF
 246: 
 247: 
 248: // vsprintf(), vswprintf(), _vstprintf()
 249: #ifndef USE_VSPRINTF
 250: #undef   _vstprintf
 251: #define  _vstprintf  _vstprintf_is_unsafe
 252: #undef   vsprintf
 253: #define  vsprintf    vsprintf_is_unsafe
 254: #undef   vswprintf
 255: #define  vswprintf   vswprintf_is_unsafe
 256: #else
 257: #pragma memo( "vsprintf() を使用します。" )
 258: #endif // #ifndef USE_VSPRINTF
 259: 
 260: 
 261: // scanf(), wscanf(), _stscanf()
 262: #ifndef USE_SCANF
 263: #undef   _stscanf
 264: #define  _stscanf  _stscanf_is_unsafe
 265: #undef   scanf
 266: #define  scanf     scanf_is_unsafe
 267: #undef   wscanf
 268: #define  wscanf    wscanf_is_unsafe
 269: #else
 270: #pragma memo( "scanf() を使用します。" )
 271: #endif // #ifndef USE_SCANF
 272: 
 273: 
 274: // gets(), _getws(), _getts()
 275: #ifndef USE_GETS
 276: #undef   _getts
 277: #define  _getts  _getts_is_unsafe
 278: #undef   gets
 279: #define  gets    gets_is_unsafe
 280: #undef   _getws
 281: #define  _getws  _getws_is_unsafe
 282: #else
 283: #pragma memo( "gets() を使用します。" )
 284: #endif // #ifndef USE_GETS
 285: 
 286: 
 287: // rand(), srand()
 288: #ifndef USE_RAND
 289: #undef   rand
 290: #define  rand   rand_is_unsafe
 291: #undef   srand
 292: #define  srand  srand_is_unsafe
 293: #else
 294: #pragma memo( "rand() を使用します。" )
 295: #endif // #ifndef USE_RAND
 296: 
 297: 
 298: //*********************************************************
 299: // 危険 API の 隠蔽
 300: //*********************************************************
 301: 
 302: // SHGetPathFromIDList()
 303: #ifndef USE_SHGETPATHFROMIDLIST
 304: #undef   SHGetPathFromIDList
 305: #define  SHGetPathFromIDList  SHGetPathFromIDList_is_unsafe
 306: #else
 307: #pragma memo( "SHGetPathFromIDList() を使用します。" )
 308: #endif // #ifndef USE_SHGETPATHFROMIDLIST
 309: 
 310: 
 311: // ShellExecute(), ShellExecuteEx()
 312: #ifndef USE_SHELLEXECUTE
 313: #undef   ShellExecute
 314: #define  ShellExecute  ShellExecute_is_unsafe
 315: #else
 316: #pragma memo( "ShellExecute() を使用します。" )
 317: #endif // #ifndef USE_SHELLEXECUTE
 318: 
 319: 
 320: #endif // #ifndef PRIVATE_TOOLS_HEAD_INCLUDED
 321: 
 322: 
 323: //** end **
 324: 

参照: lnkctrl.h, picker.h, browsbox.h, dyndlg.h, curfile.h, icofile.h, argcargv.h, dbgalloc.h, dbgasert.h, dbgtrace.h, myweburl.h, ptrlist.h, snprintf.h, toolbase.h, toolctrl.h, tooldbg.h, toolptrc.h, toolsys.h, toolsysx.h, toolwind.h, _tools.h, toolmci.h, atoffset.h, binary.h, ccslock.h, crc16.h, crc32.h, md4.h, md5.h, pathargv.h, sha1.h, sha256.h, sha512.h, toolnext.h, toolold.h, susie.h, tools.h, workthrd.h


Google
ご意見・ご感想をお聞かせ下さい。匿名で送信できます。

 * 返信が必要な場合には postmaster@katsura-kotonoha.sakura.ne.jp へ直接メールしてください。

水無瀬の部屋 > sample > tools > header > _tools.h

このページは cpp2web が出力しました。
水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp
http://katsura-kotonoha.sakura.ne.jp/prog/code/tools/header/_tools_h.shtml
『新妻LOVELY×CATION』を応援しています!